/* 
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

$(document).ready(function(){
    
    oTableS = $('#table_s').dataTable({
        'bPaginate': false,
        'iDisplayLength': 100,
        'bInfo': false,
        'bFilter':false,
        "aoColumns"   : [{"sClass": "td_grid"},{"sClass": "td_grid"},{"sClass": "td_grid"},{"sClass": "td_grid"},{"sClass": "td_grid"},{"sClass": "td_grid"},{"sClass": "td_grid"}],
        "bAutoWidth": false
        
    });
    
    oTableP = $('#table_p').dataTable({
        'bPaginate': false,
        'iDisplayLength': 100,
        'bInfo': false,
        'bFilter':false,
        "aoColumns"   : [{"sClass": "td_grid"},{"sClass": "td_grid"},{"sClass": "td_grid"},{"sClass": "td_grid"},{"sClass": "td_grid"},{"sClass": "td_grid"},{"sClass": "td_grid"}],
        "bAutoWidth": false
        
    });
    
    $(".loading").hide();
    
    $(".loading").ajaxStart(function(){
        $(this).show()
    })
    
    $(".loading").ajaxStop(function(){
        $(this).hide("slow")
    })
    
    /**
     * CARREGA OS DADOS DO CLIENTE BASEADO NO ID
     */
    $("#id_cliente").autocomplete("/agenda/get_cliente_id", {
            width: 215,
            minChars:1,
            matchSubset:1,
            matchContains:1,
            cacheLength:10,
            formatItem: formatItem,
            formatResult: formatResult
    });  
    
    $('#id_cliente').result(function(event, data, formatted) {
         $.getJSON("/agenda/get_cliente/",{cliente:formatted,tipo:"id"}, function(json){
            $("#id_cliente").val(json.id_cliente);
            $("#nome_cliente").val(json.nome_cliente);            
        });
    });
    
    /**
     * BUSCA PROFISSIONAL
     */
    $(".search_profissional").livequery(function(){
        $(this).autocomplete("/caixa/get_profissional_by_id/", {
                width: 70,
                minChars:1,
                matchSubset:1,
                matchContains:1,
                cacheLength:10,
                formatItem: formatItem,
                formatResult: formatResult
        });  
    })
    
    $(".search_profissional").livequery(function(){
        $(this).result(function(event, data, formatted) {
            var line = $(this).attr("label");
            var id_profissional = "#profissional_" + line;
            var id_servico      = "#id_servico_" + line;

            $.post("/caixa/set_profissional_servico/",{id_profissional:formatted}, function(json){
                $(id_profissional).val(json.profissional);    

                $(id_servico).html("");

                $("<option></option>")
                .val("0")
                .text("Selecione")
                .appendTo(id_servico);

                $.each(json.servicos,function(index,value){

                    $("<option></option>")
                    .val(index)
                    .text(value)
                    .appendTo(id_servico);

                })

            },"json");

            $(id_servico).focus()

        });
    })
    
    $(".set_servico").livequery(function(){
        $(this).change(function(){
            var line            = $(this).attr("label")
            var id_servico      = $(this).val();
            var id_vl_servico   = "#valor_" + line;
            
            $.post("/caixa/get_vl_servico",{id_servico:id_servico},function(vl){
                $(id_vl_servico).val(vl).focus()
            })
        })
    })
    /**
     * BUSCA PRODUTO
     */
    $(".search_produto_by_id").livequery(function(){
        $(this).autocomplete("/caixa/get_produto_by_id/", {
                width: 70,
                minChars:1,
                matchSubset:1,
                matchContains:1,
                cacheLength:10,
                formatItem: formatItem,
                formatResult: formatResult
        });  
    })
    
    $(".search_produto_by_id").livequery(function(){
        $(this).result(function(event, data, formatted) {
            var line = $(this).attr("label");
            var id_produto = "#id_produto_" + line;
            var produto    = "#produto_" + line;
            var vl_venda   = "#vl_unitario_" + line;
            var qtde       = "#qtde_" + line;
            
            $.post("/caixa/set_produto/",{data:formatted,tipo:'id'}, function(json){
                $(id_produto).val(json.id_produto);    
                $(produto).val(json.produto);
                $(vl_venda).val(json.vl_venda)
            },"json");

            $(qtde).focus()

        });
    })
    
    $(".search_produto_by_name").livequery(function(){
        $(this).autocomplete("/caixa/get_produto_by_name/", {
                width: 150,
                minChars:1,
                matchSubset:1,
                matchContains:1,
                cacheLength:10,
                formatItem: formatItem,
                formatResult: formatResult
        });  
    })
    
    $(".search_produto_by_name").livequery(function(){
        $(this).result(function(event, data, formatted) {
            var line = $(this).attr("label");
            var id_produto = "#id_produto_" + line;
            var produto    = "#produto_" + line;
            var qtde       = "#qtde_" + line;

            $.post("/caixa/set_produto/",{data:formatted,tipo:'nm'}, function(json){
                $(id_produto).val(json.id_produto);    
                $(produto).val(json.produto);
            },"json");

            $(qtde).focus()

        });
    })
    
    $(".refresh_line_produto").livequery(function(){
        $(this).keyup(function(){
            var line            = $(this).attr("label");
            var qtde            = $(this).val();
            var id_vl_unitario  = "#vl_unitario_" + line;
            var vl_unitario     = $(id_vl_unitario).val();
            var id_vl_total     = "#vl_total_" + line;
            
            $.post("/caixa/refresh_line_produto",{qtde:qtde,vl_unitario:vl_unitario},function(vl){
                $(id_vl_total).val(vl)
            })
        })
        
        $(this).blur(function(){
            refresh_totals();
        })
        
    })
    
    sCount = $("#s_count").val();;
    pCount = $("#p_count").val();
    
    $(".valor").livequery(function(){
        $(this).change(function(){
            fnClickAddRowS();
        })        
    })
    
    $(".valorP").livequery(function(){
        $(this).change(function(){
            fnClickAddRowP();
        })        
    })
    
    $(function(){

        $("#formOS").validate({

            submitHandler: function(form) {
                $(form).ajaxSubmit({
                dataType: 'json',
                success: openAlert
            });
            },

            rules: {

                nome_cliente: 'required',
                id_profissional: 'required'

            },

            messages: {

                nome_cliente: 'Nome do Cliente é um campo obrigatório',
                id_profissional: 'Profissional é um campo obrigatório'

            }

        });

    });
    
    $(".vl_total_servico").live("blur",function(){
        refresh_totals();
    })
    
    $("#vl_desconto").live("keyup",function(){
        refresh_totals();
    })
    
    $("#vl_pago").live("keyup",function(){
        refresh_totals();
    })
    
})

function refresh_totals() {
    
    var valor_p = "";
    var valor_s = "";
    var vl_pago = $("#vl_pago").val();
    var desconto= $("#vl_desconto").val();
    
    $(".vl_total_servico").livequery(function(){
        $(this).each(function(){
            valor_s = valor_s + ";" + $(this).val(); 
        })
    })
    
    $(".vl_total_produto").livequery(function(){
        $(this).each(function(){
            valor_p = valor_p + ";" + $(this).val(); 
        })
    })
    
    $.post("/caixa/calc_totais",{valor_s:valor_s,valor_p:valor_p,vl_pago:vl_pago,desconto:desconto},function(json){
        $("#vl_servico").val(json.vl_servico);
        $("#vl_produtos").val(json.vl_produto);
        $("#vl_total").val(json.vl_total);
        $("#vl_troco").val(json.vl_troco);
    },"json")
    
}
function formatItem(row) {
        return row[0];
}
function formatResult(row) {
        return row[0];
}
function fnClickAddRowS() {
    sCount++;
    $("#table_s").dataTable().fnAddData( [
            "",
            '<input type="text" id="hora_ini_' + sCount + '" name="hora_ini_' + sCount + '" class="grid" setHour="true"/>',
            '<input type="text" id="hora_fim_' + sCount + '" name="hora_fim_' + sCount + '" class="grid" setHour="true"/>',
            '<input type="text" id="id_profissional_' + sCount + '" name="id_profissional_' + sCount + '" label="' + sCount + '" class="grid search_profissional" setNumbers10="true"/>',
            '<input type="text" id="profissional_' + sCount + '" name="profissional_' + sCount + '" class="grid"/>',
            '<select id="id_servico_' + sCount + '" name="id_servico_' + sCount + '" class="grid"><option value="">1º. Profissional</option></select>',
            '<input type="text" id="valor_' + sCount + '" name="valor_' + sCount + '" class="grid valor" setMoney="true"/>' ] );
        
            $("#s_count").val(sCount);
}

function fnClickAddRowP() {
    pCount++;
    $("#table_p").dataTable().fnAddData( [
            "",
            '<input type="text" id="id_vendedor_' + pCount + '" name="id_vendedor_' + pCount + '" class="grid" setHour="true"/>',
            '<input type="text" id="id_produto_' + pCount + '" name="id_produto_' + pCount + '" class="grid" setNumbers10="true"/>',
            '<input type="text" id="produto_' + pCount + '" name="produto_' + pCount + '" label="' + pCount + '" class="grid search_profissional"/>',
            '<input type="text" id="qtde_' + pCount + '" name="qtde_' + pCount + '" class="grid" setNumbers10="true"/>',
            '<input type="text" id="vl_unitario_' + pCount + '" name="vl_unitario_' + pCount + '" class="grid" setMoney="true"/>',
            '<input type="text" id="vl_total_' + pCount + '" name="vl_total_' + pCount + '" class="grid valor" setMoney="true"/>' ] );
            
            $("#p_count").val(pCount);
}
